import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './plugins/element.js'
// 导入全局样式
import './assets/css/global.css'
// 引入字体图标样式
import './assets/fonts/iconfont.css'
// 导入封装aixos后的request文件
import { request } from './network/request'
// 导入vue-table-tree-with-gird插件
import TreeTable from 'vue-table-with-tree-grid'
// 导入富文本编辑器插件
import VueQuillEditor from 'vue-quill-editor'
// 导入富文本编辑器的样式
import 'quill/dist/quill.core.css' // import styles
import 'quill/dist/quill.snow.css' // for snow theme
import 'quill/dist/quill.bubble.css' // for bubble theme

// 导入nprogress的组件和样式
// （由于NProgress是在路由跳转的时候拦截使用因此导入代码写在了封装的request.js中了）
// import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 把网络请求request添加到Vue的原型对象上，$http
// (注意此处我们并没有直接把axios挂载到原型上， 如果挂载axios， 则直接Vue.prototype.$http = axios)
Vue.prototype.$http = request()

// 配置请求的根路径(此处注释，根路径设置我们放在了request.js内部了)
// Vue.prototype.$http.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'

// 挂载TreeTable,有两种方式，详情看依赖详情(全局挂载)
Vue.component('tree-table', TreeTable)

// 全局：对后台获取的当前时间戳进行filter过滤转换
Vue.filter('dateFormat', originVal => {
    // 转为时间格式
    const dt = new Date(originVal)
        // 获取年
    const y = dt.getFullYear()
        // 获取月(字符串拼接位数，先转字符串再拼接)
    const m = (dt.getMonth() + 1 + '').padStart(2, '0')
        // 获取日
    const d = (dt.getDate() + '').padStart(2, '0')
        // 获取时
    const hh = (dt.getHours() + '').padStart(2, '0')
        // 获取分
    const mm = (dt.getMinutes() + '').padStart(2, '0')
        // 获取秒
    const ss = (dt.getSeconds() + '').padStart(2, '0')

    return `${y} - ${m} - ${d} ${hh}: ${mm}: ${ss}`
})

// 全局挂载富文本编辑器插件
Vue.use(VueQuillEditor)

Vue.config.productionTip = false

new Vue({
    router,
    render: h => h(App)
}).$mount('#app')